class ErrorResponse {
  static code = {
    999: '服务端未返回值'
  }

  static response(res) {
    // 没有传type
    if (!res.config.error || !res.config.error.type) {
      return res.data
    }
    const { type, returnValue } = res.config.error
    let { msg, state } = res.data
    if (!msg && !state) {
      msg = ErrorResponse.code[999]
      state = ErrorResponse.code[999]
    }
    // 自定义返回值
    if (type === 'custom') {
      return {
        data: returnValue,
        msg,
        state
      }
    }
    // 操作返回消息
    if (type === 'msg') {
      return {
        msg,
        state
      }
    }
    // 表格
    if (type === 'table') {
      return {
        data: {
          rows: [],
          total: 0
        },
        msg,
        state
      }
    }
    const returnData = type === 'str' ? '' : type === 'obj' ? {} : []
    return {
      data: returnData,
      msg,
      state
    }
  }
}

export default ErrorResponse
